package edu.pku.sei.transformation.mtparser;

public abstract class AbstractResultVisitor implements ResultVisitor, ResultArgumentVisitor
{
    public abstract Object unimplementedVisitor(String s);

    public Object visit(AstToken n) { return unimplementedVisitor("visit(AstToken)"); }
    public Object visit(AstToken n, Object o) { return  unimplementedVisitor("visit(AstToken, Object)"); }

    public Object visit(RuleSemantics n) { return unimplementedVisitor("visit(RuleSemantics)"); }
    public Object visit(RuleSemantics n, Object o) { return  unimplementedVisitor("visit(RuleSemantics, Object)"); }

    public Object visit(BasicRuleSemantics n) { return unimplementedVisitor("visit(BasicRuleSemantics)"); }
    public Object visit(BasicRuleSemantics n, Object o) { return  unimplementedVisitor("visit(BasicRuleSemantics, Object)"); }

    public Object visit(CheckMode n) { return unimplementedVisitor("visit(CheckMode)"); }
    public Object visit(CheckMode n, Object o) { return  unimplementedVisitor("visit(CheckMode, Object)"); }

    public Object visit(EnforceMode n) { return unimplementedVisitor("visit(EnforceMode)"); }
    public Object visit(EnforceMode n, Object o) { return  unimplementedVisitor("visit(EnforceMode, Object)"); }

    public Object visit(ExtendMode n) { return unimplementedVisitor("visit(ExtendMode)"); }
    public Object visit(ExtendMode n, Object o) { return  unimplementedVisitor("visit(ExtendMode, Object)"); }

    public Object visit(CommaExpr n) { return unimplementedVisitor("visit(CommaExpr)"); }
    public Object visit(CommaExpr n, Object o) { return  unimplementedVisitor("visit(CommaExpr, Object)"); }

    public Object visit(SingleExpr n) { return unimplementedVisitor("visit(SingleExpr)"); }
    public Object visit(SingleExpr n, Object o) { return  unimplementedVisitor("visit(SingleExpr, Object)"); }

    public Object visit(AndExpr n) { return unimplementedVisitor("visit(AndExpr)"); }
    public Object visit(AndExpr n, Object o) { return  unimplementedVisitor("visit(AndExpr, Object)"); }

    public Object visit(OrExpr n) { return unimplementedVisitor("visit(OrExpr)"); }
    public Object visit(OrExpr n, Object o) { return  unimplementedVisitor("visit(OrExpr, Object)"); }

    public Object visit(NotExpr n) { return unimplementedVisitor("visit(NotExpr)"); }
    public Object visit(NotExpr n, Object o) { return  unimplementedVisitor("visit(NotExpr, Object)"); }

    public Object visit(ExistoneExpr n) { return unimplementedVisitor("visit(ExistoneExpr)"); }
    public Object visit(ExistoneExpr n, Object o) { return  unimplementedVisitor("visit(ExistoneExpr, Object)"); }

    public Object visit(ForallExpr n) { return unimplementedVisitor("visit(ForallExpr)"); }
    public Object visit(ForallExpr n, Object o) { return  unimplementedVisitor("visit(ForallExpr, Object)"); }

    public Object visit(EqualExpr n) { return unimplementedVisitor("visit(EqualExpr)"); }
    public Object visit(EqualExpr n, Object o) { return  unimplementedVisitor("visit(EqualExpr, Object)"); }

    public Object visit(EvalExpr n) { return unimplementedVisitor("visit(EvalExpr)"); }
    public Object visit(EvalExpr n, Object o) { return  unimplementedVisitor("visit(EvalExpr, Object)"); }

    public Object visit(ExclusiveExpr n) { return unimplementedVisitor("visit(ExclusiveExpr)"); }
    public Object visit(ExclusiveExpr n, Object o) { return  unimplementedVisitor("visit(ExclusiveExpr, Object)"); }

    public Object visit(UnionExpr n) { return unimplementedVisitor("visit(UnionExpr)"); }
    public Object visit(UnionExpr n, Object o) { return  unimplementedVisitor("visit(UnionExpr, Object)"); }

    public Object visit(AssignExpr n) { return unimplementedVisitor("visit(AssignExpr)"); }
    public Object visit(AssignExpr n, Object o) { return  unimplementedVisitor("visit(AssignExpr, Object)"); }

    public Object visit(NewExpr n) { return unimplementedVisitor("visit(NewExpr)"); }
    public Object visit(NewExpr n, Object o) { return  unimplementedVisitor("visit(NewExpr, Object)"); }

    public Object visit(DeleteExpr n) { return unimplementedVisitor("visit(DeleteExpr)"); }
    public Object visit(DeleteExpr n, Object o) { return  unimplementedVisitor("visit(DeleteExpr, Object)"); }

    public Object visit(ParenAtomicExpr n) { return unimplementedVisitor("visit(ParenAtomicExpr)"); }
    public Object visit(ParenAtomicExpr n, Object o) { return  unimplementedVisitor("visit(ParenAtomicExpr, Object)"); }

    public Object visit(UserDefinedVarExpr n) { return unimplementedVisitor("visit(UserDefinedVarExpr)"); }
    public Object visit(UserDefinedVarExpr n, Object o) { return  unimplementedVisitor("visit(UserDefinedVarExpr, Object)"); }

    public Object visit(Name n) { return unimplementedVisitor("visit(Name)"); }
    public Object visit(Name n, Object o) { return  unimplementedVisitor("visit(Name, Object)"); }

    public Object visit(StringConst n) { return unimplementedVisitor("visit(StringConst)"); }
    public Object visit(StringConst n, Object o) { return  unimplementedVisitor("visit(StringConst, Object)"); }

    public Object visit(IntConst n) { return unimplementedVisitor("visit(IntConst)"); }
    public Object visit(IntConst n, Object o) { return  unimplementedVisitor("visit(IntConst, Object)"); }

    public Object visit(RealConst n) { return unimplementedVisitor("visit(RealConst)"); }
    public Object visit(RealConst n, Object o) { return  unimplementedVisitor("visit(RealConst, Object)"); }

    public Object visit(NullConst n) { return unimplementedVisitor("visit(NullConst)"); }
    public Object visit(NullConst n, Object o) { return  unimplementedVisitor("visit(NullConst, Object)"); }

    public Object visit(InvalidConst n) { return unimplementedVisitor("visit(InvalidConst)"); }
    public Object visit(InvalidConst n, Object o) { return  unimplementedVisitor("visit(InvalidConst, Object)"); }

    public Object visit(FullMatchExpr n) { return unimplementedVisitor("visit(FullMatchExpr)"); }
    public Object visit(FullMatchExpr n, Object o) { return  unimplementedVisitor("visit(FullMatchExpr, Object)"); }

    public Object visit(PartialMatchExpr n) { return unimplementedVisitor("visit(PartialMatchExpr)"); }
    public Object visit(PartialMatchExpr n, Object o) { return  unimplementedVisitor("visit(PartialMatchExpr, Object)"); }

    public Object visit(AttributeExpr n) { return unimplementedVisitor("visit(AttributeExpr)"); }
    public Object visit(AttributeExpr n, Object o) { return  unimplementedVisitor("visit(AttributeExpr, Object)"); }

    public Object visit(OperationExpr n) { return unimplementedVisitor("visit(OperationExpr)"); }
    public Object visit(OperationExpr n, Object o) { return  unimplementedVisitor("visit(OperationExpr, Object)"); }

    public Object visit(Params n) { return unimplementedVisitor("visit(Params)"); }
    public Object visit(Params n, Object o) { return  unimplementedVisitor("visit(Params, Object)"); }

    public Object visit(IfExpr0 n) { return unimplementedVisitor("visit(IfExpr0)"); }
    public Object visit(IfExpr0 n, Object o) { return  unimplementedVisitor("visit(IfExpr0, Object)"); }

    public Object visit(IfExpr1 n) { return unimplementedVisitor("visit(IfExpr1)"); }
    public Object visit(IfExpr1 n, Object o) { return  unimplementedVisitor("visit(IfExpr1, Object)"); }

    public Object visit(PredefinedVarExpr0 n) { return unimplementedVisitor("visit(PredefinedVarExpr0)"); }
    public Object visit(PredefinedVarExpr0 n, Object o) { return  unimplementedVisitor("visit(PredefinedVarExpr0, Object)"); }

    public Object visit(PredefinedVarExpr1 n) { return unimplementedVisitor("visit(PredefinedVarExpr1)"); }
    public Object visit(PredefinedVarExpr1 n, Object o) { return  unimplementedVisitor("visit(PredefinedVarExpr1, Object)"); }

    public Object visit(PredefinedVarExpr2 n) { return unimplementedVisitor("visit(PredefinedVarExpr2)"); }
    public Object visit(PredefinedVarExpr2 n, Object o) { return  unimplementedVisitor("visit(PredefinedVarExpr2, Object)"); }

    public Object visit(PredefinedVarExpr3 n) { return unimplementedVisitor("visit(PredefinedVarExpr3)"); }
    public Object visit(PredefinedVarExpr3 n, Object o) { return  unimplementedVisitor("visit(PredefinedVarExpr3, Object)"); }

    public Object visit(BooleanConst0 n) { return unimplementedVisitor("visit(BooleanConst0)"); }
    public Object visit(BooleanConst0 n, Object o) { return  unimplementedVisitor("visit(BooleanConst0, Object)"); }

    public Object visit(BooleanConst1 n) { return unimplementedVisitor("visit(BooleanConst1)"); }
    public Object visit(BooleanConst1 n, Object o) { return  unimplementedVisitor("visit(BooleanConst1, Object)"); }


    public Object visit(Ast n)
    {
        if (n instanceof AstToken) return visit((AstToken) n);
        else if (n instanceof RuleSemantics) return visit((RuleSemantics) n);
        else if (n instanceof BasicRuleSemantics) return visit((BasicRuleSemantics) n);
        else if (n instanceof CheckMode) return visit((CheckMode) n);
        else if (n instanceof EnforceMode) return visit((EnforceMode) n);
        else if (n instanceof ExtendMode) return visit((ExtendMode) n);
        else if (n instanceof CommaExpr) return visit((CommaExpr) n);
        else if (n instanceof SingleExpr) return visit((SingleExpr) n);
        else if (n instanceof AndExpr) return visit((AndExpr) n);
        else if (n instanceof OrExpr) return visit((OrExpr) n);
        else if (n instanceof NotExpr) return visit((NotExpr) n);
        else if (n instanceof ExistoneExpr) return visit((ExistoneExpr) n);
        else if (n instanceof ForallExpr) return visit((ForallExpr) n);
        else if (n instanceof EqualExpr) return visit((EqualExpr) n);
        else if (n instanceof EvalExpr) return visit((EvalExpr) n);
        else if (n instanceof ExclusiveExpr) return visit((ExclusiveExpr) n);
        else if (n instanceof UnionExpr) return visit((UnionExpr) n);
        else if (n instanceof AssignExpr) return visit((AssignExpr) n);
        else if (n instanceof NewExpr) return visit((NewExpr) n);
        else if (n instanceof DeleteExpr) return visit((DeleteExpr) n);
        else if (n instanceof ParenAtomicExpr) return visit((ParenAtomicExpr) n);
        else if (n instanceof UserDefinedVarExpr) return visit((UserDefinedVarExpr) n);
        else if (n instanceof Name) return visit((Name) n);
        else if (n instanceof StringConst) return visit((StringConst) n);
        else if (n instanceof IntConst) return visit((IntConst) n);
        else if (n instanceof RealConst) return visit((RealConst) n);
        else if (n instanceof NullConst) return visit((NullConst) n);
        else if (n instanceof InvalidConst) return visit((InvalidConst) n);
        else if (n instanceof FullMatchExpr) return visit((FullMatchExpr) n);
        else if (n instanceof PartialMatchExpr) return visit((PartialMatchExpr) n);
        else if (n instanceof AttributeExpr) return visit((AttributeExpr) n);
        else if (n instanceof OperationExpr) return visit((OperationExpr) n);
        else if (n instanceof Params) return visit((Params) n);
        else if (n instanceof IfExpr0) return visit((IfExpr0) n);
        else if (n instanceof IfExpr1) return visit((IfExpr1) n);
        else if (n instanceof PredefinedVarExpr0) return visit((PredefinedVarExpr0) n);
        else if (n instanceof PredefinedVarExpr1) return visit((PredefinedVarExpr1) n);
        else if (n instanceof PredefinedVarExpr2) return visit((PredefinedVarExpr2) n);
        else if (n instanceof PredefinedVarExpr3) return visit((PredefinedVarExpr3) n);
        else if (n instanceof BooleanConst0) return visit((BooleanConst0) n);
        else if (n instanceof BooleanConst1) return visit((BooleanConst1) n);
        throw new UnsupportedOperationException("visit(" + n.getClass().toString() + ")");
    }
    public Object visit(Ast n, Object o)
    {
        if (n instanceof AstToken) return visit((AstToken) n, o);
        else if (n instanceof RuleSemantics) return visit((RuleSemantics) n, o);
        else if (n instanceof BasicRuleSemantics) return visit((BasicRuleSemantics) n, o);
        else if (n instanceof CheckMode) return visit((CheckMode) n, o);
        else if (n instanceof EnforceMode) return visit((EnforceMode) n, o);
        else if (n instanceof ExtendMode) return visit((ExtendMode) n, o);
        else if (n instanceof CommaExpr) return visit((CommaExpr) n, o);
        else if (n instanceof SingleExpr) return visit((SingleExpr) n, o);
        else if (n instanceof AndExpr) return visit((AndExpr) n, o);
        else if (n instanceof OrExpr) return visit((OrExpr) n, o);
        else if (n instanceof NotExpr) return visit((NotExpr) n, o);
        else if (n instanceof ExistoneExpr) return visit((ExistoneExpr) n, o);
        else if (n instanceof ForallExpr) return visit((ForallExpr) n, o);
        else if (n instanceof EqualExpr) return visit((EqualExpr) n, o);
        else if (n instanceof EvalExpr) return visit((EvalExpr) n, o);
        else if (n instanceof ExclusiveExpr) return visit((ExclusiveExpr) n, o);
        else if (n instanceof UnionExpr) return visit((UnionExpr) n, o);
        else if (n instanceof AssignExpr) return visit((AssignExpr) n, o);
        else if (n instanceof NewExpr) return visit((NewExpr) n, o);
        else if (n instanceof DeleteExpr) return visit((DeleteExpr) n, o);
        else if (n instanceof ParenAtomicExpr) return visit((ParenAtomicExpr) n, o);
        else if (n instanceof UserDefinedVarExpr) return visit((UserDefinedVarExpr) n, o);
        else if (n instanceof Name) return visit((Name) n, o);
        else if (n instanceof StringConst) return visit((StringConst) n, o);
        else if (n instanceof IntConst) return visit((IntConst) n, o);
        else if (n instanceof RealConst) return visit((RealConst) n, o);
        else if (n instanceof NullConst) return visit((NullConst) n, o);
        else if (n instanceof InvalidConst) return visit((InvalidConst) n, o);
        else if (n instanceof FullMatchExpr) return visit((FullMatchExpr) n, o);
        else if (n instanceof PartialMatchExpr) return visit((PartialMatchExpr) n, o);
        else if (n instanceof AttributeExpr) return visit((AttributeExpr) n, o);
        else if (n instanceof OperationExpr) return visit((OperationExpr) n, o);
        else if (n instanceof Params) return visit((Params) n, o);
        else if (n instanceof IfExpr0) return visit((IfExpr0) n, o);
        else if (n instanceof IfExpr1) return visit((IfExpr1) n, o);
        else if (n instanceof PredefinedVarExpr0) return visit((PredefinedVarExpr0) n, o);
        else if (n instanceof PredefinedVarExpr1) return visit((PredefinedVarExpr1) n, o);
        else if (n instanceof PredefinedVarExpr2) return visit((PredefinedVarExpr2) n, o);
        else if (n instanceof PredefinedVarExpr3) return visit((PredefinedVarExpr3) n, o);
        else if (n instanceof BooleanConst0) return visit((BooleanConst0) n, o);
        else if (n instanceof BooleanConst1) return visit((BooleanConst1) n, o);
        throw new UnsupportedOperationException("visit(" + n.getClass().toString() + ")");
    }
}

